package com.zqsoft.dao;

import java.util.ArrayList;
import java.util.List;

import com.zqsoft.bean.UserBean;
import com.zqsoft.utils.FileUtils;

/**
 *
 * 用户基本信息进行读写操作
 * @author Administrator
 *
 */
public class UserDAO {

    /**
     * 读取所有的用户信息
     * @return 用户信息集合
     */
    public static List<UserBean> getAllUsers() {
        String filename = "user/userbase.txt";	// 用户文件的路径读取
        List<UserBean> allUsers = new ArrayList<UserBean>();	// 所有的用户信息
        List<String> allLine = FileUtils.readFile(filename);	// 读取用户文件内容
        // 遍历文件内容，加载用户信息
        for (int i = 0; i < allLine.size(); i++) {
            String line = allLine.get(i);
            String[] tmp = line.split(";");	// 拆分信息
            // 获取用户信息
            int userId = Integer.parseInt(tmp[0]);
            String userName = tmp[1];
            String nickName = tmp[2];
            String password = tmp[3];
            String useModText = tmp[4];
            String notice = tmp[5];
            String pic = tmp[6];
            // 构建UserBean实体对象
            UserBean userBean = new UserBean();
            userBean.setUserId(userId);
            userBean.setUserName(userName);
            userBean.setNickName(nickName);
            userBean.setNotice(notice);
            userBean.setPassword(password);
            userBean.setUserModText(useModText);
            userBean.setPic("resources/head/"+pic);
            // 将UserBean添加到集合中
            allUsers.add(userBean);
        }
        return allUsers;
    }

    /**
     * 将所有的用户对象写入到文件中
     * @param allUsers
     */
    public static void saveAllUsers(List<UserBean> allUsers) {
        String filename = "user/userbase.txt";	// 定义用户文件的路径
        String str = "";
        // 遍历所有用户信息，获取信息
        for (int i = 0; i < allUsers.size(); i++) {
            UserBean user = allUsers.get(i);
            String pic = user.getPic();
            pic=pic.substring(pic.lastIndexOf("/")+1);
            str += user.getUserId() + ";" + user.getUserName() + ";"
                    + user.getNickName() + ";" + user.getPassword() + ";"
                    + pic + ";" + user.getUserModText() + ";"
                    + user.getNotice();
            if (i != allUsers.size() - 1) {
                str += "\n";
            }
        }
        FileUtils.writeFile(filename, str);
    }

}